//==============================================================================================
/**
 * @file	factory_bmp.h
 * @brief	「バトルファクトリー」BMP
 * @author	Satoshi Nohara
 * @date	2007.03.15
 */
//==============================================================================================
#ifndef _FACTORY_BMP_H_
#define _FACTORY_BMP_H_

#include "factory_sys.h"
#include "system/window.h"


//==============================================================================================
//
//	定義
//
//==============================================================================================
//ビットマップID
enum{
	BMPWIN_TR1 = 0,
	BMPWIN_TR2,
	BMPWIN_POKE1,
	BMPWIN_POKE2,
	BMPWIN_POKE3,
	BMPWIN_POKE4,
	BMPWIN_POKE5,

	BMPWIN_TALK,
	BMPWIN_POKEICON_NAME,
	BMPWIN_COMM_RET,
	BMPWIN_COMM_END,

	BMPWIN_STATUS,
	BMPWIN_SELECT,
	BMPWIN_OUT,
	BMPWIN_CLOSE,
	BMPWIN_SUB,
	BMPWIN_ADD,
	BMPWIN_CLOSE2,

	FACTORY_BMPWIN_MAX,				//BMPウィンドウの数
};


enum {
	FACTORYBMP_PRINT_MODE_LEFT = 0,		// 左詰
	FACTORYBMP_PRINT_MODE_RIGHT,		// 右詰
	FACTORYBMP_PRINT_MODE_CENTER,		// 中央
};


//==============================================================================================
//
//	extern宣言
//
//==============================================================================================

//--------------------------------------------------------------
/**
 * @brief	ビットマップ追加
 *
 * @param	ini		BGLデータ
 * @param	win		ビットマップウィンドウ
 *
 * @return	none
 */
//--------------------------------------------------------------
extern void FactoryAddBmpWin( GF_BGL_INI* bgl, GF_BGL_BMPWIN* win );

//--------------------------------------------------------------
/**
 * @brief	ビットマップウィンドウ破棄
 *
 * @param	win		ビットマップウィンドウ
 *
 * @return	none
 */
//--------------------------------------------------------------
extern void FactoryExitBmpWin( GF_BGL_BMPWIN* win );

//--------------------------------------------------------------
/**
 * @brief	ビットマップウィンドウオフ
 *
 * @param	win		ビットマップウィンドウ
 *
 * @return	none
 */
//--------------------------------------------------------------
extern void FactoryOffBmpWin( GF_BGL_BMPWIN* win );

//--------------------------------------------------------------------------------------------
/**
 * @brief	会話ウィンドウ表示
 *
 * @param	win		BMPデータ
 * @param	wintype	ウィンドウタイプ
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void FactoryTalkWinPut( GF_BGL_BMPWIN * win, WINTYPE wintype );


//--------------------------------------------------------------------------------------------
/**
 * @brief	文字列表示（バッファ指定）
 *
 * @param	win		BMPWIN
 * @param	str		文字列バッファ
 * @param	x		表示基準Ｘ座標
 * @param	y		表示基準Ｙ座標
 * @param	fnt		フォント
 * @param	col		カラー
 * @param	mode	表示モード
 *
 * @return	none
 *
 * @li	mode = FACTORYBMP_PRINT_MODE_LEFT   : 左詰
 * @li	mode = FACTORYBMP_PRINT_MODE_RIGHT  : 右詰
 * @li	mode = FACTORYBMP_PRINT_MODE_CENTER : 中央
 */
//--------------------------------------------------------------------------------------------
extern void FACTORYBMP_StrPrintCore(
				GF_BGL_BMPWIN * win, STRBUF * str,
				u32 x, u32 y, FONT_TYPE fnt, GF_PRINTCOLOR col, u32 mode );

//--------------------------------------------------------------------------------------------
/**
 * @brief	文字列表示（固定文字列）
 *
 * @param	win		BMPWIN
 * @param	man		メッセージマネージャ
 * @param	msgID	文字列ＩＤ
 * @param	x		表示基準Ｘ座標
 * @param	y		表示基準Ｙ座標
 * @param	fnt		フォント
 * @param	col		カラー
 * @param	mode	表示モード
 *
 * @return	none
 *
 * @li	mode = FACTORYBMP_PRINT_MODE_LEFT   : 左詰
 * @li	mode = FACTORYBMP_PRINT_MODE_RIGHT  : 右詰
 * @li	mode = FACTORYBMP_PRINT_MODE_CENTER : 中央
 */
//--------------------------------------------------------------------------------------------
extern void FACTORYBMP_StrPrint(
				GF_BGL_BMPWIN * win, MSGDATA_MANAGER * man,
				u32 msgID, u32 x, u32 y, FONT_TYPE fnt, GF_PRINTCOLOR col, u32 mode );


//--------------------------------------------------------------------------------------------
/**
 * @brief	マルチの場合、上画面のポケモン表示位置を変更する
 *
 * @param	win		BMPWIN
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void FACTORYBMP_MultiPosChange( GF_BGL_BMPWIN * win );

//--------------------------------------------------------------------------------------------
/**
 * @brief	ボタンＢＧ読み込み
 *
 * @param	bgl		GF_BGL_INI
 * @param	ah		アーカイブハンドル
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void FACTORYBMP_ButtonLoad( GF_BGL_INI * bgl, ARCHANDLE * ah );

//--------------------------------------------------------------------------------------------
/**
 * @brief	ボタン表示
 *
 * @param	bgl		GF_BGL_INI
 * @param	ah		アーカイブハンドル
 * @param	num		ボタン番号
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void FACTORYBMP_ButtonOn( GF_BGL_INI * bgl, ARCHANDLE * ah, u32 num );

//--------------------------------------------------------------------------------------------
/**
 * @brief	ボタン非表示
 *
 * @param	bgl		GF_BGL_INI
 * @param	num		ボタン番号
 *
 * @return	none
 */
//--------------------------------------------------------------------------------------------
extern void FACTORYBMP_ButtonOff( GF_BGL_INI * bgl, u32 num );


#endif //_FACTORY_BMP_H_

